package com.creating.mict.service.impl;



import java.util.List;

import javax.annotation.Resource;

import com.creating.mict.dao.ColumnDao;
import com.creating.mict.dao.OfficeDao;
import com.creating.mict.domain.Column;
import com.creating.mict.domain.Office;
import com.creating.mict.service.IColumnService;
import com.creating.mict.service.IOfficeService;


/**
 * @ClassName: ColumnServiceImpl
 * @Description: 栏目service实现类
 * @author xuelei
 * @date 2012-3-9 下午7:57:34
 * 
 */
public class OfficeServiceImpl implements IOfficeService {

	@Resource
	private OfficeDao officeDao;
	


	/**
	 * 
	* @Title: buildCheckOfficeTreeByUser 
	* @Description: 组装checkBox树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildCheckOfficeTreeByUser(String node, String loginName) {
		List<Column> user_list = null;//columnDao.getOfficeByUserId(loginName);
		List<Column> all_list = null;//columnDao.getAllOfficeList();
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		boolean check_boo = false;
		for (Column ri : all_list) {
			if (ri.getFparent().equals(node)) {
				check_boo = false;
				jsonStr.append("{");
				// 叶子
				if (ri.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					//jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					for(int i = 0; i < user_list.size(); i++) {
						if(user_list.get(i).getFbh().equals(ri.getFbh())) {
							check_boo = true;
						}
					}
					if(check_boo) {
						jsonStr.append("'checked':").append(true).append(",");
					} else {
						jsonStr.append("'checked':").append(false).append(",");
					}
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFbh() + "-" + ri.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					for(int i = 0; i < user_list.size(); i++) {
						if(user_list.get(i).getFbh().equals(ri.getFbh())) {
							check_boo = true;
						}
					}
					if(check_boo) {
						jsonStr.append("'checked':").append(true).append(",");
					} else {
						jsonStr.append("'checked':").append(false).append(",");
					}
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFname()).append("'");
				}
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	
	/**
	 * 
	* @Title: buildCheckOfficeTree 
	* @Description: 组装checkBox树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildCheckOfficeTree(String node) {
		List<Office> list = officeDao.queryOfficeList(node);
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		for (Office offi : list) {
			if (offi.getFparent().equals(node)) {
				jsonStr.append("{");
				// 叶子
				if (offi.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(offi.getFcode()).append("',");
					jsonStr.append("'fcode':'").append(offi.getFcode()).append("',");
					jsonStr.append("'text':'").append(offi.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(offi.getFcode()).append("',");
					jsonStr.append("'fcode':'").append(offi.getFcode()).append("',");
					jsonStr.append("'text':'").append(offi.getFname()).append("'");
				}
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	
	/**
	 * 
	* @Title: buildOfficeTree 
	* @Description: 组装单选树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildOfficeTree(String node) {
		List<Office> list = officeDao.queryOfficeList(node);
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		for (Office offi : list) {
			if (offi.getFparent().equals(node)) {
				jsonStr.append("{");
				// 叶子
				if (offi.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
				//	jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(offi.getFcode()).append("',");
					jsonStr.append("'fcode':'").append(offi.getFcode()).append("',");
					jsonStr.append("'text':'").append(offi.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
				//	jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(offi.getFcode()).append("',");
					jsonStr.append("'fcode':'").append(offi.getFcode()).append("',");
					jsonStr.append("'text':'").append(offi.getFname()).append("'");
				}
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	/**
	 * 
	* @Title: queryOfficeList 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param node
	* @param @return 
	* @return List<Office>    返回类型 
	* @throws
	 */
	public List<Office> queryOfficeList(String node) {
		return officeDao.queryOfficeList(node);
	}

	/**
	 * 
	* @Title: getOfficeByCode 
	* @Description: 根据编号获取机构信息
	* @param @param fcode
	* @param @return 
	* @return Office    返回类型 
	* @throws
	 */
	public Office getOfficeByCode(String fcode) {
		return officeDao.getOfficeByCode(fcode);
	}
	
	/**
	 * 
	* @Title: saveOffice 
	* @Description: 保存机构信息
	* @param @param offi
	* @param @return 
	* @return boolean    返回类型 
	* @throws
	 */
	public boolean saveOffice(Office offi) {
		return officeDao.saveOffice(offi);
	}
	
	/**
	 * 
	* @Title: deleteOfficeByCode 
	* @Description: 删除机构信息
	* @param @param fcode
	* @param @return 
	* @return boolean    返回类型 
	* @throws
	 */
	public boolean deleteOfficeByCode(String fcode) {
		return officeDao.deleteOfficeByCode(fcode);
	}
	
}
